/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package jms;

import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
import mb.Multibanco;

/**
 *
 * @author Emanuel
 */
@MessageDriven(mappedName = "jms/correctoraQueue", activationConfig = {
    @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
    @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")
})
public class TransferenciaBean implements MessageListener {

    public TransferenciaBean() {
    }

    public void onMessage(Message message) {
        //partimos do principio que a constituição da mensagem é a seguinte:
        //nibOrigem;nibDestino;montante
        String nibOrigem;
        String nibDestino;
        long montante;

        Multibanco mb = new Multibanco();

        TextMessage mensgemSplitada = (TextMessage) message;
        try {
            String[] split = mensgemSplitada.getText().split(";");
            nibOrigem = split[0];
            nibDestino = split[1];
            montante = Long.getLong(split[2]);

            //verifica se conta destino existe;
            if (mb.getCorretora().verifiSeExisteContaDestino(nibDestino)) {
                //verifica se conta origem tem saldo suficiente
                if (true/*aqui falta mais um metodo do lado da banca implementado*/) { //metodo do get saldo atraves do nib
                    mb.efectuarTransferenciaMultibanco(nibOrigem, nibDestino, Long.toString(montante));
                }
            }

            //esta seria a nossa ideia de tatamento das mensagens de transferencia.
            //efectua a transferencia

        } catch (JMSException ex) {
            Logger.getLogger(TransferenciaBean.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
